#!/bin/bash
export ANDROID_NDK_ROOT=/mnt/android_home/ndk/android-ndk-r28c
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
# 设置变量
export ANDROID_NDK=${ANDROID_NDK:-"/mnt/android_home/ndk/android-ndk-r28c"}
OPENSSL_DIR=$(pwd)
OUTPUT_ROOT="$OPENSSL_DIR/build-android"

# 支持的 ABI 和对应工具链目标
declare -A ABI_MAP=(
    ["armeabi-v7a"]="android-arm"
    ["arm64-v8a"]="android-arm64"
    ["x86"]="android-x86"
    ["x86_64"]="android-x86_64"
)

# 最小 API 级别
API=21

# 遍历每个 ABI
for ANDROID_ABI in "${!ABI_MAP[@]}"; do
    TOOLCHAIN_NAME=${ABI_MAP[$ANDROID_ABI]}
    OUTPUT_DIR="$OUTPUT_ROOT/$ANDROID_ABI"

    echo "🔧 正在构建 $ANDROID_ABI ($TOOLCHAIN_NAME) 到 $OUTPUT_DIR"

    /opt/module/src/openssl/openssl-3.0.15/Configure \
        "$TOOLCHAIN_NAME" \
        --prefix="$OUTPUT_DIR" \
        --openssldir="$OUTPUT_DIR/ssl" \
        no-unit-test \
        no-async \
        -D__ANDROID_API__=$API

    # 编译并安装
    make -j$(nproc)
    make install_sw install_ssldirs  # 只安装库和头文件，不安装文档

    # 清理以便下一次构建
    make clean

    echo "✅ $ANDROID_ABI 构建完成"
    echo "✅ $TOOLCHAIN_NAME 构建完成"
done

echo "🎉 所有架构构建完成！输出目录: $OUTPUT_ROOT"